<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
	<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
	<title>LOOP: Lua Object-Oriented Programming</title>
	<style type="text/css" media="all"><!--
		@import "loop.css";
		@import "layout3.css";
	--></style>
</head>

<body>

<div id="Header">Class Models for Lua</div>
<div id="Logo"><img alt="small (1K)" src="small.gif" height="70"></div>

<div id="Menu">
<div class="outside"><div class="inside"><ul>
	<li><strong>Home</strong></li>
	<li><a href="release/index.html", title="Installation">Install</a></li>
	<li><a href="manual/index.html", title="User Manual">Manual</a></li>
	<li><a href="library/index.html", title="Class Library">Library</a></li>
	<li><a href="contact.html", title="Contact People">Contact</a></li>
	<li><a href="http://luaforge.net/projects/oil/", title="Project at LuaForge">LuaForge</a></li>
</ul></div></div>

</div>

<div class="content">


<h1>Class Models for The Lua Language</h1>

<p>LOOP stands for Lua Object-Oriented Programming and is a set of packages for supporting different models of object-oriented programming in the <a href="http://www.lua.org/">Lua</a> language. In fact, Lua is not an object-oriented language nor it was intended to be because one of the main goals of Lua is to remain simple and small. However, it provides facilities as syntactic sugar to support an object-oriented programming style. Additionally, the extension mechanisms of Lua can be used to implement most of the traditional object-oriented concepts commonly available in other languages. This lack of a standard object model avoids the use of a peculiar model instead of models customized for particular needs, like simplicity, flexibility or performance.</p>
<p>The models provided by LOOP are not intended to define a standard for the Lua language. Instead, they are examples of the introduction of more traditional object-oriented features into the language. Particularly, LOOP models are mainly concerned to dynamicity, although there is an attempt to keep them as simple and efficient as possible. Additionally, LOOP uses the fundamental Lua concepts like tables (objects) and meta-tables (classes), traditionally used to enable an object-oriented programming style, to provide a common ground for the interoperability of objects and classes of its different models.</p>

<p><strong>Note:</strong> Are you new to Lua? Then read <a href="manual/intro.html">this</a>.</p>
</div>

<div class="content">
<p><small><strong>Copyright (C) 2004-2008 Tecgraf, PUC-Rio</strong></small></p>
<small>This project is currently being maintained by <a href="http://www.tecgraf.puc-rio.br">Tecgraf</a> at <a href="http://www.puc-rio.br">PUC-Rio</a>.</small>
</div>

<div id="Board">
<h3>Latest News</h3>
<dl class="news">
	<dt>07.07.2008</dt>
	<dd>LOOP's rock is available through <a href="http://www.luarocks.org/">LuaRocks</a>.</dd>
	<dt>05.07.2008</dt>
	<dd><a href="release/index.html">LOOP 2.3 beta</a> released.</dd>
	<dt>20.01.2008</dt>
	<dd><a href="http://lists.luaforge.net/mailman/listinfo/loop-users">LOOP's mailing list</a> created.</dd>
</dl>
<a href="news.html">More ...</a>
</div>


</body>

</html>
